package com.wnzt.baszh.dao;

import java.util.List;
import java.util.Map;

import com.wnzt.baszh.util.common.PageHelper;

/**
 * 归档DAO层接口
 * @author dqw
 * @date 2017-5-16
 */
public interface IArchivingDao {

	PageHelper queryArchiving(Map<String, Object> map)throws Exception; //查询病案集中归档数据

	List<List<Map<String, Object>>>  getArchivingByFzyid(String fzyids) throws Exception; //根据住院ID获取归档总数

	List<Map<String, Object>> getDeptByFcode(String fcode)throws Exception; //根据当前用户获取对应的科室和病区

	List<Map<String, Object>> getBQByFcode(String fcode)throws Exception; //根据当前用户获取对应的病区

	List<Map<String, Object>> getFcybsByKsbh(String ksbh, String fcode)throws Exception; //获取出院病室

	PageHelper queryAllArchiving(Map<String, Object> map)throws Exception; //获取所有已归档和未归档数据

	List<Map<String, Object>> getAllFcybs(String ksbh)throws Exception; //获取所有的科室

	PageHelper queryStatistics(Map<String, Object> map)throws Exception; //获取归档统计数据

	PageHelper getYqgdData(Map<String, Object> map)throws Exception; // 根据科室统一编号获取逾期归档记录

	PageHelper queryBrowseHistory(Map<String, Object> map)throws Exception; //获取浏览过的病历

	Map<String, Object> getToday()throws Exception;//获取今天

	Map<String, Object> getThisWeek()throws Exception;//获取本周

	Map<String, Object> getLastWeek()throws Exception;//获取上周

	List<Map<String, Object>> getAllYear()throws Exception;//获取每年和每月
 
	List<Map<String, Object>> getAllBrowseName()throws Exception; //获取所有浏览人姓名

	PageHelper queryBrowseLog(Map<String, Object> map)throws Exception;//查询浏览日志

	PageHelper getApplyRecord(Map<String, Object> map)throws Exception; //获取申请记录

	List<Map<String, Object>> getApplyDetails(String fzyid)throws Exception; //获取申请详细记录

	PageHelper getBatchApplyRecord(Map<String, Object> map)throws Exception; // 获取批量申请记录

	List<Map<String, Object>> getBatchApplyDetails(String fsqid)throws Exception; //获取申请记录

	PageHelper getBatchList(Map<String, Object> map)throws Exception; //根据申请ID获取批量申请列表页数据
	
	/**
	 * @author [lv tang wei]
	 * Describe:获取是否归档病历
	 * @param status  0：未归档  1：已归档
	 * @return
	 * [2017年5月19日]
	 */
	public List<Map<String,Object>> getNotArchived() throws Exception;
	
	/**
	 * @author [lv tang wei]
	 * Describe:修改归档状态
	 * @param fid
	 * [2017年5月22日]
	 */
	public void updateArchivedStatus(String fid)throws Exception;
	
	/**
	 * @author [lv tang wei]
	 * Describe: 新增归档
	 * @param fzyid 住院id
	 * @param fprn 病案号
	 * @param ftimes 住院次数
	 * @param fname 病人姓名
	 * @throws Exception
	 * [2017年5月22日]
	 */
	public void addArchived(String fzyid,String fprn,String ftimes,String fname)throws Exception;
	
	/**
	 * @author [lv tang wei]
	 * Describe:根据病案号+住院次数查询基本信息后归档
	 * @param fprn
	 * @param ftimes
	 * @throws Exception
	 * [2017年5月24日]
	 */
	public void addArchived(String fprn,String ftimes,String status)throws Exception;
	
	/**
	 * 归档明细
	 * @author [lv tang wei]
	 * Describe:
	 * @param fprn
	 * @param ftimes
	 * @param fblmc
	 * @param fbllx
	 * @param fpages
	 * @param ftemppath
	 * @throws Exception
	 * [2017年7月5日]
	 */
	public void addBagdmx(String fprn,String ftimes,String fblmc,String fbllx,String fpages,String ftemppath)throws Exception;
	
	/**
	 * 修改归档明细
	 * @author [lv tang wei]
	 * Describe:
	 * @param fprn   病案号
	 * @param ftimes 次数
	 * @param fblmc  病历名称
	 * @param encryptpath ftp加密保存目录
	 * @param signpath ftp签名保存目录
	 * @throws Exception
	 * [2017年7月10日]
	 */
	public void updateBagdmx(String fprn,String ftimes,String fblmc,String encryptpath,String signpath)throws Exception;

	
	/**
	 * 归档
	 * @param param
	 * @throws Exception
	 */
	public void saveArchived(Map<String,Object> param)throws Exception;
	
}
